package veapplib

// AppHost 主机基础信息
type AppHost struct {
	HostName       string `json:"hostName"`
	Mac            string `json:"mac "`
	Ip             string `json:"ip"`
	Domain         string `json:"domain"`         // eg:WORKGROUP, 域
	Os             string `json:"os"`             // 系统类型：windows / linux
	OsCaption      string `json:"osCaption"`      // eg: Microsoft Windows 10 专业版 , 系统标题
	PartOfDomain   bool   `json:"partOfDomain"`   // eg:false, 计算机是否入域
	SystemType     string `json:"systemType"`     // eg；x64-based PC ，系统类型
	BuildNumber    string `json:"buildNumber"`    // eg : 19043 .操作系统的构建号,它比产品发布版本号更精确的版本信息。
	OsArchitecture string `json:"osArchitecture"` // eg: 64位 ，操作系统位数
	Version        string `json:"version"`        // eg:10.0.19043 ,系统版本号
	SerialNumber   string `json:"serialNumber"`   // eg:00330-80191-48344-AA161, 操作系统产品序列号。
	RdpPort        uint8  `json:"rdpPort"`
	CpuInfo        string `json:"cpuInfo"`
}

type AppInfo struct {
	AppName   string `json:"appName"`
	LinkPath  string `json:"linkPath"` //应用路径，如果是快捷方式，快捷方式的路径
	ExePath   string `json:"exePath"`  // 应用实际执行文件的路径
	AppParams string `json:"appParams"`
	WorkSpace string `json:"workSpace"`
	Icon      string `json:"icon"`
	Remark    string `json:"remark"`
}

// LoadInfo 主机负载信息
type LoadInfo struct {
	Cpu float64 `json:"cpu"`
	Mem float64 `json:"mem"`
}

// LogicDiskInfo 逻辑卷信息
type LogicDiskInfo struct {
	DeviceID   string
	FileSystem string
	DriveType  uint32 // eg:3 , 磁盘类型，0-未知；1-No Root Directory；2-移动磁盘；3-本地磁盘；4-网络驱动器；5-光盘；6-RAM盘
	Size       string // eg:255369482240 ,总空间
	FreeSpace  uint64 // eg:88191721472,空闲空间
}

type SYSAbstract struct {
	Name         string // eg：hcy，名称
	Domain       string // eg： ，域信息
	PartOfDomain bool   // eg:false, 计算机是否入域
	SystemType   string // eg；x64-based PC ，系统类型
}
type SYSOperating struct {
	BuildNumber    string // eg : 19043 .操作系统的构建号,它比产品发布版本号更精确的版本信息。
	Caption        string // eg:Microsoft Windows 10 专业版 , 系统标题
	OSArchitecture string // eg: 64位 ，操作系统位数
	SerialNumber   string // eg:00330-80191-48344-AA161, 操作系统产品序列号。
	SystemDrive    string // eg:c； ，系统盘卷标
	Version        string // eg:10.0.19043 ,系统版本号
}

type CpuInfo struct {
	Name                      string // eg :Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz 处理器的名称
	NumberOfCores             uint32 // eg:6,芯为处理器的当前实例的数目。核心是在集成电路上的物理处理器
	NumberOfLogicalProcessors uint32 // eg:6  ,用于处理器的当前实例逻辑处理器的数量
}
type MemoryBaseInfo struct {
	Capacity uint64 // eg:8589934592 ，获取内存容量, / 1024*1024*1024 才能换算成GB
	Speed    uint32 // eg：2667，速率 内存频率 单位MHz
}
